"""The base Controller API

Provides the BaseController class for subclassing.
"""
from pylons.controllers import WSGIController
from pylons.controllers.util import redirect
from pylons.templating import render_mako as render
from paste.request import construct_url

from google.appengine.api import users
from monkeytest.lib import helpers as h

class BaseController(WSGIController):

    def __call__(self, environ, start_response):
        """Invoke the Controller"""
        # WSGIController.__call__ dispatches to the Controller method
        # the request is routed to. This routing information is
        # available in environ['pylons.routes_dict']
        user = users.get_current_user()
        
        if user:
            return WSGIController.__call__(self, environ, start_response)
        else:
           start_response("303 See Other", [('Location', users.create_login_url(construct_url(environ)))])
           return []